package com.zhilianbao.leyaogo.http.api;

import android.content.Context;

import com.bql.utils.CheckUtils;
import com.zhilianbao.leyaogo.constants.HttpConfig;
import com.zhilianbao.leyaogo.http.client.LeYaoGoClient;
import com.zhilianbao.okhttputils.callback.Callback;
import com.zhilianbao.okhttputils.model.JsonParams;

/**
 * Author: hcy
 * Description:订单相关api
 * Created: 2016/11/25 9:38
 */
public class OrderApi {

    /**
     * 生成订单
     */
    public static final String I_METHOD_ADD_ORDER = "order/addOrder";

    /**
     * 送货地址是否可配送
     */
    public static final String I_METHOD_EXPRESS = "order/express";

    /**
     * 验证订单详细说明
     */
    public static final String I_METHOD_VALIDATE_ORDER = "order/validateOrder";

    /**
     * 生产订单
     *
     * @param context      上下文
     * @param userId       用户id
     * @param goodsId      商品ID 多个用逗号隔开 与数量对应 ,
     * @param goodsSkuId   商品编号 0 对应SPU商品(多个用逗号隔开 与商品ID对应)
     * @param number       购买数量 多个用逗号隔开 与商品ID对应 ,
     * @param addressId    收货地址id
     * @param orderType    订单类型 0 普通订单 1 虚拟订单 2 充值订单 3 赠送订单 4 团购订单 ,
     * @param activityJson 活动Json 格式
     * @param payType      付款方式 0 电商支付 1 货到付款
     * @param hasInvoice 是否开发票 是否开发票。0：不开，1：开 ,
     * @param invoiceType 发票类型 0：普通发票，1：电子发票，2：增值税发票 ,
     * @param invoiceTitleType 抬头类型 0个人，2公司
     * @param invoiceTitle 发票抬头
     * @param callback     回调
     */
    public static void addOrder(Context context, long userId, String goodsId, String goodsSkuId, String number,
                                long addressId, int orderType, String activityJson, int payType, long couponsItemId,
                                String cardItemId,int hasInvoice, int invoiceType, String invoiceTitle,int invoiceTitleType,Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("userId", userId);
        jsonParams.put("goodsId", goodsId);
        jsonParams.put("goodsSkuId", goodsSkuId);
        jsonParams.put("number", number);
        jsonParams.put("addressId", addressId);
        jsonParams.put("orderType", orderType);
        jsonParams.put("activityJson", activityJson);
        jsonParams.put("payType", payType);
        jsonParams.put("couponsItemId", couponsItemId);
        if (!CheckUtils.isEmpty(cardItemId)) {//有卡券
            jsonParams.put("cardItemId", cardItemId);
        }
        jsonParams.put("couponsItemId", couponsItemId);

        jsonParams.put("hasInvoice", hasInvoice);
        if(hasInvoice==1){
            jsonParams.put("invoiceTitle", invoiceTitle);
            jsonParams.put("invoiceType", invoiceType);
            jsonParams.put("invoiceTitleType", invoiceTitleType);

        }

        LeYaoGoClient.post(context, HttpConfig.BASE_URL + I_METHOD_ADD_ORDER, jsonParams, callback);

    }

    /**
     * 配送说明，说明
     *
     * @param context    上下文
     * @param userId     用户di
     * @param supplierId 运营商
     * @param addressId  地址id
     * @param shopId     商店id
     * @param callback   回调
     */
    public static void express(Context context, long userId, long supplierId, long addressId, long shopId, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("userId", userId);
        jsonParams.put("supplierId", supplierId);
        jsonParams.put("addressId", addressId);
        jsonParams.put("shopId", shopId);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + I_METHOD_EXPRESS, jsonParams, callback);
    }

    /**
     * 验证订单详细说明
     * @param context Context
     * @param userId User id
     * @param goodsId 拼接good id
     * @param goodsSkuId 拼接goodSKU id
     * @param number 拼接购买数量
     * @param activityJson 活动
     * @param callback CallBack
     */
    public static void validateOrder(Context context,long userId, String goodsId, String goodsSkuId, String number, String activityJson, Callback callback){
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("userId", userId);
        jsonParams.put("goodsId", goodsId);
        jsonParams.put("goodsSkuId", goodsSkuId);
        jsonParams.put("number", number);
        jsonParams.put("activityJson", activityJson);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + I_METHOD_VALIDATE_ORDER, jsonParams, callback);
    }

}
